home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / TextEncodingConverter.p < prev    next >
Text File  |  1996-05-01  |  5KB  |  154 lines

  1. {
  2.      File:        TextEncodingConverter.p
  3.  
  4.      Contains:    Text Encoding Conversion Interfaces.
  5.  
  6.      Version:    Technology:    System 7.1 through System 8
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT TextEncodingConverter;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __TEXTENCODINGCONVERTER__}
  28. {$SETC __TEXTENCODINGCONVERTER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC TextEncodingConverterIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MIXEDMODE__}
  38. {$I MixedMode.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __UNICODE__}
  41. {$I Unicode.p}
  42. {$ENDC}
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48. {$IFC FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE }
  49. {  converter object reference  }
  50.  
  51. TYPE
  52.     EncodingConverterRef = ^LONGINT;
  53. {  character substitution  }
  54.     CharSubstitutionPtr = ^CharSubstitution;
  55.     CharSubstitution = RECORD
  56.         originalChar:            UInt32;
  57.         replacementChar:        UInt32;
  58.     END;
  59.  
  60.     CharSubstitutionListPtr = ^CharSubstitutionList;
  61.     CharSubstitutionList = RECORD
  62.         numberOfSubstitutions:    ItemCount;
  63.         list:                    ARRAY [0..0] OF CharSubstitution;
  64.     END;
  65.  
  66. {  invalid character lists  }
  67.     InvalidCharRangePtr = ^InvalidCharRange;
  68.     InvalidCharRange = RECORD
  69.         firstCharInRange:        ByteOffset;
  70.         lastCharInRange:        ByteOffset;
  71.     END;
  72.  
  73.     InvalidCharRangeListPtr = ^InvalidCharRangeList;
  74.     InvalidCharRangeList = RECORD
  75.         numberOfRanges:            ItemCount;
  76.         list:                    ARRAY [0..0] OF InvalidCharRange;
  77.     END;
  78.  
  79. {  encoding conversion options  }
  80.     EncodingOptionsPtr = ^EncodingOptions;
  81.     EncodingOptions = RECORD
  82.         sourceflags:            UInt16;
  83.         destflags:                UInt16;
  84.         maxLineLength:            ItemCount;
  85.     END;
  86.  
  87. {$ENDC}
  88. {$IFC FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE }
  89. {  return number of encodings types supported by user's configuraton of the encoding converter  }
  90. FUNCTION CountAvailableTextEncodings(VAR numberOfMappings: ItemCount): OSStatus;
  91.     {$IFC NOT GENERATINGCFM}
  92.     INLINE $303C, $021A, $ABCE;
  93.     {$ENDC}
  94. {  fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle.  }
  95. FUNCTION GetAvailableTextEncodings(VAR availableEncodings: TextEncoding; maxAvailableEncodings: ItemCount; VAR actualAvailableEncodings: ItemCount): OSStatus;
  96.     {$IFC NOT GENERATINGCFM}
  97.     INLINE $303C, $061B, $ABCE;
  98.     {$ENDC}
  99. {  create a converter object with default conversion characteristics  }
  100. FUNCTION NewEncodingConverter(VAR newEncodingConverter: EncodingConverterRef; inputEncoding: TextEncoding; outputEncoding: TextEncoding): OSStatus;
  101.     {$IFC NOT GENERATINGCFM}
  102.     INLINE $303C, $061C, $ABCE;
  103.     {$ENDC}
  104. {  disose and encoding converter object  }
  105. FUNCTION DisposeEncodingConverter(VAR newEncodingConverter: EncodingConverterRef): OSStatus;
  106.     {$IFC NOT GENERATINGCFM}
  107.     INLINE $303C, $021D, $ABCE;
  108.     {$ENDC}
  109. {  manage substitution lists  }
  110. FUNCTION SetConverterSubstitutionList(VAR encodingConverter: EncodingConverterRef; VAR charSubstitutionPtr: CharSubstitutionList): OSStatus;
  111.     {$IFC NOT GENERATINGCFM}
  112.     INLINE $303C, $041E, $ABCE;
  113.     {$ENDC}
  114. FUNCTION GetConverterSubstitutionListCount(VAR encodingConverter: EncodingConverterRef; VAR count: ItemCount): OSStatus;
  115.     {$IFC NOT GENERATINGCFM}
  116.     INLINE $303C, $041F, $ABCE;
  117.     {$ENDC}
  118. FUNCTION GetConverterSubstitutionList(VAR encodingConverter: EncodingConverterRef; VAR charSubstitutionPtr: CharSubstitutionList): OSStatus;
  119.     {$IFC NOT GENERATINGCFM}
  120.     INLINE $303C, $0220, $ABCE;
  121.     {$ENDC}
  122. {  manage invalid character lists  }
  123. FUNCTION SetConverterInvalidCharRangeList(VAR encodingConverter: EncodingConverterRef; VAR invalidCharPtr: InvalidCharRangeList): OSStatus;
  124.     {$IFC NOT GENERATINGCFM}
  125.     INLINE $303C, $0421, $ABCE;
  126.     {$ENDC}
  127. FUNCTION GetConverterInvalidCharRangeListCount(VAR encodingConverter: EncodingConverterRef; VAR count: ItemCount): OSStatus;
  128.     {$IFC NOT GENERATINGCFM}
  129.     INLINE $303C, $0422, $ABCE;
  130.     {$ENDC}
  131. FUNCTION GetConverterInvalidCharRangeList(VAR encodingConverter: EncodingConverterRef; VAR invalidCharPtr: InvalidCharRangeList): OSStatus;
  132.     {$IFC NOT GENERATINGCFM}
  133.     INLINE $303C, $0423, $ABCE;
  134.     {$ENDC}
  135. FUNCTION ConvertTextEncoding(VAR encodingConverter: EncodingConverterRef; clearContext: BOOLEAN; VAR inputText: BytePtr; VAR inputLength: ByteCount; outputBuffer: BytePtr; outputBufferSize: ByteCount; VAR actualOutputLength: ByteCount): OSStatus;
  136.     {$IFC NOT GENERATINGCFM}
  137.     INLINE $303C, $1024, $ABCE;
  138.     {$ENDC}
  139. FUNCTION ExamineTextEncoding(VAR inputText: BytePtr; VAR inputLength: ByteCount; VAR availableEncodings: TextEncoding; maxAvailableEncodings: ItemCount; VAR validEncoding: BOOLEAN): OSStatus;
  140.     {$IFC NOT GENERATINGCFM}
  141.     INLINE $303C, $0A25, $ABCE;
  142.     {$ENDC}
  143. {$ENDC}
  144. {$ALIGN RESET}
  145. {$POP}
  146.  
  147. {$SETC UsingIncludes := TextEncodingConverterIncludes}
  148.  
  149. {$ENDC} {__TEXTENCODINGCONVERTER__}
  150.  
  151. {$IFC NOT UsingIncludes}
  152.  END.
  153. {$ENDC}
  154.